package dataPersistence;

import hitExceptions.InvalidOperationException;
import dataPersistence.dao.IItemDAO;
import dataPersistence.dao.IProductDAO;
import dataPersistence.dao.IProductGroupDAO;
import dataPersistence.dao.IStorageUnitDAO;
import dataPersistence.dao.Item_DB_DAO;
import dataPersistence.dao.Product_DB_DAO;

public interface DataPersistenceFactory 
{

	/**
	 * returns the item DAO
	 * @return Item_DB_DAO
	 */
	public IItemDAO getItemDAO();


	/**
	 * returns the product DAO
	 * @return Product_DB_DAO
	 */
	public IProductDAO getProductDAO();


	/**
	 * returns the product group DAO
	 * @return ProductGroup_DB_DAO
	 */
	public IProductGroupDAO getProductGroupDAO();


	/**
	 * returns the storage unit DAO
	 * @return StorageUnit_DB_DAO
	 */
	public IStorageUnitDAO getStorageUnitDAO();
	
	public void load()throws InvalidOperationException ;
	
	public void save()throws InvalidOperationException;
	public void save(String file)throws InvalidOperationException;


	public void load(String file)  throws InvalidOperationException ;
	
}

